#-------------------------------------------------------------------------------
# Zephyr Example Application
#
# Copyright (c) 2021 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

cmake_minimum_required(VERSION 3.13.1)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CONFIG_NEWLIB_LIBC ON)

set(CONF_FILE prj.conf

        # None of the below should be removed!
        overlay-settings.conf
        overlay-networking.conf
        overlay-lwm2m.conf
        overlay-fota.conf
        overlay-nbiot.conf
        overlay-lwm2m-1.1.conf

        # Uncomment to enable DTSL for LwM2M
        # Remember to edit the overlay with the LwM2M server details for DTLS
        overlay-dtls.conf

        # Currently un-tested but not required for now
        overlay-queue.conf
        )

find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})

project(app VERSION 1)

configure_file(app_version.h.in ${CMAKE_BINARY_DIR}/app/include/app_version.h)
target_include_directories(app PRIVATE ${CMAKE_BINARY_DIR}/app/include src)

set(CMAKE_CXX_FLAGS "-fpermissive")
add_compile_options(-Wfpermissive)

target_sources(app PRIVATE
        src/main.cpp

        src/types/lwm2m_types.h
        src/types/button_types.h
        src/types/connection_types.h

        src/settings/settings_macro.h
        src/settings/device.h
        src/settings/device.cpp

        src/lwm2m/ipso/device.h
        src/lwm2m/ipso/device.cpp
        src/lwm2m/ipso/buttons.h
        src/lwm2m/ipso/buttons.cpp
        src/lwm2m/ipso/illuminance.h
        src/lwm2m/ipso/illuminance.cpp
        src/lwm2m/ipso/soil_moisture.h
        src/lwm2m/ipso/soil_moisture.cpp
        src/lwm2m/ipso/temperature.h
        src/lwm2m/ipso/temperature.cpp
        src/lwm2m/ipso/location.h
        src/lwm2m/ipso/location.cpp

        src/gps/gps.h
        src/gps/gps.cpp

        src/lwm2m/control.h
        src/lwm2m/control.cpp
        src/lwm2m/sender.h
        src/lwm2m/sender.cpp
        src/lwm2m/shell.h

        src/modem/control.h
        src/modem/control.cpp

        src/io/buttons.h
        src/io/buttons.cpp

        src/services/factory_info.h
        src/services/factory_info.cpp
        src/services/connection_sm.h
        src/services/connection_sm.cpp
        src/services/connection_sm_helper.h

        src/utilities/to_underlying.h
)
